Een DAL interface
Probleem
Design
T klasse
In dit voorbeeld wijst de letter T op een type dat alleen bekend is in het programma dat de IDal methode oproept. De methode IDal kan werken met het voorbeeld van T alsof het een echt type is, maar dat is het niet.
De IDal interface weet niet voor welke entiteit die zal gebruikt worden. Dat weet alleen de Dal klasse die ervan overerft, bv. Dal.EventCategory. Dus moeten we een 'algemeen' object type in de declaratie in de interface gebruiken en dat is T.
We voegen de Message Eigenschap toe om feedback aan de gebruiker te kunnen geven.
De methoden ReadOne en Delete hebben als parameter een id. Daarin wordt de Id van de rij meegegeven die benaderd moet worden. De rest van de gegevens hebben we in die methoden niet nodig. We hebben we alle kolomgegevens nodig voor de methoden Update en Create en daarom hebben die als parameter een BLL object van de desbetreffende entiteit. De ReadOne methode retourneert een BLL object met alle kolom gegevens van de gevonden rij. De ReadAll methode retourneert een generieke lijst met voor elke rij in de tabel een BLL object.
Oplossing
using System.Collections.Generic;
namespace FricFrac.Dal
{
interface IDal<T>
{
string Message { get; }
int RowCount { get; }
List<T> ReadAll();
T ReadOne(int id);
int Create(T bll);
int Update(T bll);
int Delete(int id);
}
}